package br.com.ro.view;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.ro.model.dao.GrupoDao;
import br.com.ro.model.entity.Grupo;
import br.com.ro.util.BeanFactory;
import br.com.ro.util.Utils;

@ManagedBean(name = "grupoBean")
@ViewScoped
public class GrupoBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private Grupo grupo = new Grupo();
	private List<Grupo> listaGrupo = new ArrayList<Grupo>();
	private GrupoDao grupoDao = (GrupoDao) BeanFactory.getBean("grupoDao", GrupoDao.class);

	public GrupoBean() {
		atualizarTela();
	}

	/**
	 * Limpa os campos input e atualiza a lista de usuários cadastrados
	 */
	private void atualizarTela() {
		grupo = new Grupo();
		listaGrupo = grupoDao.listAll();
	}

	public void limpar() {
		grupo = new Grupo();
	}

	/**
	 * Grava novo registro ou atualiza um registro
	 */
	public void gravar() {
		
		Object[] obj = { getGrupo().getDescricao(), "Nome do Grupo" };
		if (Utils.getValilador().validar(obj))
			return;

		grupoDao.save(getGrupo());
		atualizarTela();
	}

	/**
	 * Exclui um registro da tabela usuario
	 */
	public void excluir() {
		grupoDao.delete(getGrupo());
		atualizarTela();
	}

	public Grupo getGrupo() {
		return grupo;
	}

	public void setGrupo(Grupo grupo) {
		this.grupo = grupo;
	}

	public List<Grupo> getListaGrupo() {
		return listaGrupo;
	}

	public void setListaGrupo(List<Grupo> listaGrupo) {
		this.listaGrupo = listaGrupo;
	}

}
